Apparatus for connection management and the method therefor

ABSTRACT

An apparatus and method for scheduling data distributions to or results information from, or collectively, “jobs” a plurality of data processing systems via a network. A connection to a target system is created. For each distribution, a session, which is an independent thread, is allocated from one of a plurality of pool of sessions and launched to effect execution of the job. Each pool corresponds to a predetermined priority level, and the session is allocated from the pool having the same priority level as the priority level of the job being scheduled. A connection supports a multiplicity of independent threads. In the event of an error, the session is released, and the scheduling of the aborted job is retried after a predetermined retry interval expires. After expiry of the retry interval, a callback method is invoked when the target system on which the scheduled job is executed becomes accessible.

This application is a continuation of application Ser. No. 09/438,436,filed Nov. 12, 1999, status allowed.

CROSS-REFERENCE TO RELATED APPLICATIONS

Related subject matter may be found in the following commonly assigned,co-pending U.S. Patent Applications, both of which are herebyincorporated by reference herein.

Ser. No. 09/460,855, entitled “APPARATUS FOR DATA DEPOTING AND METHODTHEREFOR”

Ser. No. 09/460,853, entitled “APPARATUS FOR RELIABLY RESTARTINGINTERRUPTED DATA TRANSFER AT LAST SUCCESSFUL TRANSFER POINT AND METHODTHEREFOR”

Ser. No. 09/438,437, entitled “AN APPARATUS AND METHOD FOR DISTRIBUTINGAND COLLECTING BULK DATA BETWEEN A LARGE NUMBER OF MACHINES” and filedconcurrently herewith;

Ser. No. 09/458,268, entitled “COMPUTER NETWORK CONTROL SYSTEMS ANDMETHODS” and filed concurrently herewith;

Ser. No. 09/460,852 entitled “METHODS OF DISTRIBUTING DATA IN A COMPUTERNETWORK AND SYSTEMS USING THE SAME”

Ser. No. 09/458,269, entitled “SYSTEMS AND METHODS FOR REAL TIMEPROGRESS MONITORING IN A COMPUTER NETWORK”;

Ser. No. 09/460,851, entitled “APPARATUS FOR AUTOMATICALLY GENERATINGRESTORE PROCESS DURING SOFTWARE DEPLOYMENT AND METHOD THEREFOR”, and

Ser. No. 09/460,854, entitled “AN APPARATUS FOR JOURNALING DURINGSOFTWARE DEPLOYMENT AND METHOD THEREFOR”.

TECHNICAL FIELD

The present invention relates generally to data processing systems, andin particular, to bulk data distributions within networked dataprocessing systems.

BACKGROUND

Present day data processing systems are often configured in largemulti-user networks. Management of such networks may typically includethe need to transfer bulk data to an endpoint system from a sourcesystem (or, simply, “a source”) and the collection of information, forexample, error reports from a multiplicity of endpoints systems (or,simply, “endpoints”).

Such large data transfers may occur within a network, for example, todistribute software updates. The system administrator may need toallocate a specific period of time for the data transfer to moreefficiently utilize network resources. This may typically occur when thecommunication load on the system is lowest, usually at night when mostendpoint users are not working at their stations. The systemadministrator may load the bulk data and the corresponding transferinstructions onto the network system's source, or server, in preparationfor the transfer. At the predetermined time set by the administrator,the server will push the data while ensuring that the bulk data issuccessfully transferred to each of the desired endpoint locations.However, during the transfer a portion of the system server is dedicatedto the data transfer and thus unavailable for other networking tasks.Moreover, as the number of endpoints which must be simultaneouslyserviced by the bulk data distribution increases, network bandwidthdemands are concomitantly increased. This complicates scalability of thebulk distribution systems.

Therefore, a need exists in the art for a bulk distribution mechanismthat can transfer large amounts of data between network connectedsubsystems (or nodes) while maintaining scalability. Additionally, thereis a need in such distribution mechanisms for methods and apparatus todistribute bulk data to a multiplicity of endpoints and to collect bulkdata, including large log files, from the endpoints.

SUMMARY OF THE INVENTION

The aforementioned needs are addressed by the present invention.Accordingly, there is provided, in a first form, a connection schedulingmethod. The method determines if a job is available for scheduling. Itis also determined if a session for effecting an execution the job isavailable. The session is included in a pool of sessions, in which thepool of sessions has a preselected one of a set of priority levels. Thepreselected priority level corresponds to a priority level of the jobbeing scheduled for execution. If available, the session is launched toeffect the execution of the job.

There is also provided, in a second form, a data processing system forconnection scheduling. The system contains circuitry operable fordetermining if a job is available for scheduling. Also included iscircuitry operable for determining, in response to the circuitryoperable for determining if a job is available, if a session isavailable. The session is included in a pool of sessions, the pool ofsessions having a preselected one of a set of priority levelscorresponding to a priority level of the job. The session effects anexecution of the job. The system also has circuitry operable forlaunching the session to effect the execution of the job, if the sessionis available.

Additionally, there is provided, in a third form, a computer programproduct embodied in a machine readable storage medium. The programproduct for job scheduling includes instructions for determining if ajob is available for scheduling. The program product also containsinstructions for determining, in response to the instructions fordetermining if the job is available, if a session is available, whereinthe session is included in a pool of sessions, the pool of sessionshaving a preselected one of a set of priority levels corresponding to apriority level of the job. The session effects an execution of theavailable job. The program product also contains instructions forlaunching the session to effect the execution of the job, if the sessionis available.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention, and theadvantages thereof, reference is now made to the following descriptionstaken in conjunction with the accompanying drawings, in which:

FIG. 1 illustrates, in block diagram form, a data processing network inaccordance with an embodiment of the present invention;

FIG. 2 illustrates, in block diagram form, a data processing systemimplemented in accordance with an embodiment of the present invention;

FIG. 3A illustrates, in flowchart form, a connection management threadin accordance with an embodiment of the present invention;

FIG. 3B illustrates, in flowchart form, a session thread in accordancewith an embodiment of the present invention;

FIG. 3C illustrates, in flowchart form, an error handling thread whichmay be used with the session thread of FIG. 3B;

FIG. 3D illustrates, in flowchart form, a retry timer thread, inaccordance with an embodiment of the present invention;

FIG. 4 illustrates, in flowchart form, a methodology implemented todetermine priority resource availability in accordance with anembodiment of the present invention; and

FIG. 5 schematically illustrates a repeater connection list which may beused in an embodiment of the present invention.

DETAILED DESCRIPTION

The present invention is a method and apparatus for managing connectionsin a system for distributing and collecting data between an originatingsource system and a plurality of endpoint systems (which may also bereferred to as “endpoint nodes” or simply “endpoints”). The method andapparatus provides a mechanism for managing a plurality of sessions, orthreads, for sending a distribution to or receiving results informationfrom the corresponding target machine. Sessions are allocated inaccordance with a preselected distribution priority. Each distributionpriority level has a predetermined number of sessions available to it ina corresponding sessions pool. By scheduling distributions on theirpriorities, large, low priority distributions will no longer“bottleneck” high priority small distributions.

According to the principles of the present invention, the presentinvention has an originating source system followed by repeaters. Theuse of repeaters allows data to be delivered essentially simultaneouslyto a large number of machines. The present invention can be scaled tohandle more destinations by adding repeaters. In the followingdescription, numerous specific details are set forth to provide athorough understanding of the present invention. However, it will beobvious to those skilled in the art that the present invention may bepracticed without such specific details. In other instances, well-knowncircuits have been shown in block diagram form in order not to obscurethe present invention in unnecessary detail. For the most part, detailsconcerning timing considerations and the like have been omitted inasmuchas such details are not necessary to obtain a complete understanding ofthe present invention and are within the skills of persons of ordinaryskill in the relevant art.

A more detailed description of the implementation of the presentinvention will subsequently be provided. Prior to that discussion, anenvironment in which the present invention may be implemented will bedescribed in greater detail.

FIG. 1 illustrates a communications network 100. The subsequentdiscussion and description of FIG. 1 are provided to illustrate anexemplary environment used by the present invention.

The network system 100 includes source system 101, one or more fanout/collector nodes, or, repeaters 110, 111, 118, 119, and a pluralityof endpoints 112-117. Additionally, certain repeaters, such as 118 and119, are directly connected to one or more endpoints, in the exemplaryembodiment of FIG. 1, endpoints 112-114 or 115-117, respectively, andmay be referred to as “gateway” repeaters (or, simply, “gateways”).

Source system 101 provides distribution services with respect toresources 112-117. Note that source system 101 and endpoints 112-117interfaces to repeaters 110 and 111 using the same methodologies asrepeaters 110 and 111 interface with, for example, repeaters 118 and119. Viewed logically, source system 110 and endpoints 112-117 each mayinclude a “repeater.” In other words, as an artisan of ordinary skillwould recognize, a repeater may be a logical element that may be, but isnot necessarily associated with a physical, stand-alone hardware devicein network 100. Repeater 110 may be the primary repeater through whichresources 112-114 receive their data transfers, and repeater 111,likewise, may primarily service endpoints 115-117. The connectionmanagement methodologies described below in conjunction with FIGS. 3A-3Dmay be performed by repeaters 110, 111, 118 and 119. It would beunderstood by an artisan of ordinary skill that additional repeaters maybe inserted into the network and may be arranged in a multi-levelhierarchy according to the demands imposed by the network size. Gatewayrepeaters 118 and 1 19 are such repeaters in the exemplary embodiment ofFIG. 1.

However, network system 100 provides cross connections in order toprovide redundant, parallel communication paths should the primarycommunication path to the endpoint become unavailable. For example, inFIG. 1, endpoint 114 has a primary pathway to source system 101 throughrepeaters 118 and 110. (A source system, such as source system 101 mayalso be referred to as a source node.) Should repeater 110 becomeunavailable, source system 101 can transfer bulk data to endpoint 114via an alternative pathway through repeaters 118 and 111. Additionally,should repeater 118 become unavailable, endpoint 114 may receive datavia repeaters 111 and 119. Source system 101 maintains database 120 forstoring information used in managing a data distribution.

Referring next to FIG. 2, an example is shown of a data processingsystem 200 which may be used to implement a source system such as system101, repeaters, such as repeaters 110, 111, 118, or 119 or endpoints,such as endpoints 112-117, executing the methodology of the presentinvention. The system has a central processing unit (CPU) 210, which iscoupled to various other components by system bus 212. Read only memory(“ROM”) 216 is coupled to the system bus 212 and includes a basicinput/output system (“BIOS”) that controls certain basic functions ofthe data processing system 200. Random access memory (“RAM”) 214, L/Oadapter 218, and communications adapter 234 are also coupled to thesystem bus 212. VO adapter 218 may be a small computer system interface(“SCSI”) adapter that communicates with a disk storage device 220. Diskstorage device 220 may be used to hold database 120, FIG. 1.Communications adapter 234 interconnects bus 212 with the network aswell as outside networks enabling the data processing system tocommunicate with other such systems. Input/Output devices are alsoconnected to system bus 212 via user interface adapter 222 and displayadapter 236. Keyboard 224, track ball 232, mouse 226 and speaker 228 areall interconnected to bus 212 via user interface adapter 222. Displaymonitor 238 is connected to system bus 212 by display adapter 236. Inthis manner, a user is capable of inputting to the system throughout thekeyboard 224, trackball 232 or mouse 226 and receiving output from thesystem via speaker 228 and display 238.

Implementations of the invention include implementations as a computersystem programmed to execute the method or methods described herein, andas a computer program product. According to the computer systemimplementation, sets of instructions for executing the method or methodsare resident in the random access memory 214 of one or more computersystems configured generally as described above. Until required by thecomputer system, the set of instructions may be stored as a computerprogram product in another computer memory, for example, in disk drive220 (which may include a removable memory such as an optical disk orfloppy disk for eventual use in the disk drive 220). Further, thecomputer program product can also be stored at another computer andtransmitted when desired to the user's work station by a network or byan external network such as the Internet. One skilled in the art wouldappreciate that the physical storage of the sets of instructionsphysically changes the medium upon which it is stored so that the mediumcarries computer readable information. The change may be electrical,magnetic, chemical, biological, or some other physical change. While itis convenient to describe the invention in terms of instructions,symbols, characters, or the like, the reader should remember that all ofthese and similar terms should be associated with the appropriatephysical elements.

Note that the invention may describe terms such as comparing,validating, selecting, identifying, or other terms that could beassociated with a human operator. However, for at least a number of theoperations described herein which form part of at least one of theembodiments, no action by a human operator is desirable. The operationsdescribed are, in large part, machine operations processing electricalsignals to generate other electrical signals.

Refer now to FIG. 3A illustrating a connection management thread 300which may be used in an embodiment of the present invention. Thread 300may be used by repeaters, such as repeaters 110, 111, 118, and 119 ofnetwork 100, FIG. 1. Distributions or results information to betransferred by a repeater are enqueued in an output “job” queue inaccordance with the assigned priority of the distribution.(Distributions targeted for ultimate delivery to an endpoint and resultsinformation for a report-to system may collectively be referred tosimply as “jobs.”) The transfer of distributions and results informationis discussed in the commonly owned co-pending U.S. Patent Applicationentitled “An Apparatus and Method for Distributing and Collecting BulkData between a Large Number of Machines,” incorporated herein byreference and as described herein, the distribution or resultsinformation may be assigned one of three priority levels, low, medium,or high, in an embodiment of the present invention. Distributions areenqueued in order of priority.

In step 302, the job queue is locked, and, while the job queue is notempty, step 304, jobs are scheduled until the queue is exhausted. Whenthe queue is exhausted, in step 306 the output queue is unlocked,whereby new distributions received by the repeater may be enqueued forsending to a target repeater or end point, as appropriate. Scheduling isinitiated, when, in step 308, the output job queue is no longer empty.Step 308 constitutes event loop, wherein scheduling is initiated inresponse to an event such as a “running job completed” event. After arunning job completes, a session, as described below, becomes available.A “new job” event, signaling that a new job has arrived at the repeaterperforming thread 300 will also initiate scheduling.

Returning to step 304, while the queue is not empty, thread 300 proceedsthrough the queue to schedule distributions for sending to a targetrepeater or endpoint as appropriate. In step 307 it is determined if acurrent job is ready for scheduling. If not, in step 308 thread 300proceeds to the next job. A job may be determined to be ready forscheduling by determining the job state. If the job state has a firstpredetermined value, which in an embodiment of the present invention maybe referred to as “WAITING”, then the job is ready for dispatch. Thesetting of the job state for a particular job will be described below inconjunction with steps 382-384, and 386, FIG. 3C.

If, in step 307, the current job is ready for scheduling, in step 310the session pools are searched. As indicated hereinabove, distributionsmay have one of three priorities, high, medium, or low. Each repeaterhas a pool of sessions, or threads, which are run to transfer data to atarget system, either a target repeater or an target endpoint, asappropriate for the particular distribution. As discussed further below,a logical connection to the target system is established for a new jobunless the connection is already present because of an ongoingdistribution to the same target. A connection can have multiple logicalsessions associated with it. Each new session between repeaters or arepeater and an endpoint will establish a network channel or path totransfer data, so between a repeater and an endpoint or anotherrepeater, there can be multiple sessions to execute jobs. That is, theremay be parallel data transfer to the same target.

Each distribution to or results information from a target machine“consumes” a session from the pool of sessions available to thedistribution or results information. Each repeater has a pool ofsessions allocated for each priority level. A session is used by thread300 to run a job on a preselected target. That is, a session initiates adata transfer through an establish network channel and waits for thetarget to finish processing data. Jobs are dispatched in order ofpriority, with higher priority jobs being dispatched preferentially overlower priority jobs. A higher priority job may obtain the session fromthe pool allocated to its priority, and successively lower prioritypools as well.

A higher priority distribution may use sessions from its own pool first.If no sessions are found, then the distribution looks for sessions inthe lower priority pools. This may be understood by referring now toFIG. 4 which illustrates in detail a methodology for performing step 310in accordance with this protocol. In step 410, it is determined if thedistribution has a high priority level. If not, then in step 420, it isdetermined if the distribution has a medium priority level. If not, thenthe distribution has a low priority, step 430 and, in step 435, it isdetermined if a low priority to low 10 priority session is available. Ifa low priority session is available, then in step 450, methodology 500signals that a session is available. Conversely, if no low prioritysessions are available in step 435, in step 440 methodology 400 signalsthat no session is available.

Returning to step 410, if the job is determined to have a high priority,then in step 415 it is determined if a high priority session isavailable. If so, then methodology 400 proceeds to step 450. Otherwise,if a high priority session is unavailable, that is, fully used by otherjobs, then in step 425 it is determined if a medium priority session isavailable Again, if session is available, then step 450 is performed;otherwise, in step 435, it is determined if session allocated to the lowpriority pool is available. If so, step 435, then step 450 is performed;otherwise, no connections are available and methodology 400 proceeds tostep 440.

Similarly, if in step 410, it has been determined that the job is not ahigh priority distribution, it is determined if the job has a mediumpriority, step 420. If not, it must again be a low priority job. step430, previously described. Otherwise, in step 420 it is a mediumpriority job, and in step 425 it is determined if a medium prioritysession is available. As before, if no medium priority sessions areavailable, it is determined if a low priority session is available, step435. In this manner, a with a given priority level can use the number ofsessions reserved for its priority level plus any sessions allocated tolower priority levels. If no sessions are available at the assignedpriority or lower, the methodology signals no available sessions, step440, as previously described.

Returning to FIG. 3A, if, in step 312, it is determined a session isavailable to the job as reported in step 450, FIG. 4, then the sessionis reserved in step 314. Otherwise, if it is reported not available,step 440, FIG. 4, step 312 proceeds by the “No” branch to step 307.Because, as previously described, jobs are enqueued in priority order,the unavailability of a session for the current job also means that thesucceeding jobs cannot also be scheduled because they have a prioritythat is the same or lower than the current job. Thread 300 then loops instep [[308]] 301 for an event indicating that a session has becomeavailable, which then triggers thread 300 via the “yes” branch in step301. Similarly as discussed below, an “UNREACHABLE” state job may becomeavailable, whereby the state goes to “WAITING”, which will also triggerscheduling.

It is then determined in thread 300 if a connection object, or simplyconnection, has been established for the target system (which may alsobe referred to as a target node). Thus, in step 316, a connection listis searched to determine if a connection has been established for thetarget node. The connection list contains one or more connection objectsthat are a logical representation of a communication channel, or path,between the repeater running the thread and the target. A connectionobject maintains the status of the channel. For example if the channelbreaks the status of the connection may change from a first value, say“LIP”, to a second value, say “DOWN.” The connection object alsoincludes all of the active sessions associated with the target.

If an existing connection does not exist, in step 318 a new connectionobject is created, and in step 320 a new session is created and run.Recall that a connection can have multiple sessions associated with it,and each session is a thread. For example, schematically shown in FIG.5, is a repeater connection list with three connections, C-0, C-1 andC-2. Connection C-0 has two active sessions, S-0 and S-1, running Job 0and Job 1, respectively, for the target, repeater R-1. similarly,connection C-1 has two sessions, S-2 and S-3 running Job 2 and Job 3,respectively on a target endpoint, E-2. An exclusive session, S-4, runsJob 4 on connection C-2, for target endpoint E-3. No other jobs will runon connection C-2 until S-4 ends. If, however, in step 316 a connectionexists, it is determined if the connection is being exclusively used bya job, step 322. If the existing connection is exclusive, then thesession reserved in step 314 is released, step 324 and thread 300proceeds to step 308 to schedule the next job.

Returning to FIG. 3A, the creation of a new session, in step 320,launches a session, which, in an embodiment of the present invention,may be session 350, FIG. 3B. In step 352 it is determined if the targetsystem is accessible. The 10 target system may be inaccessible if, forexample, the target system is unavailable or due to a network outage. Ifa target is inaccessible, in step 354 a retry thread is launched. Thiswill be discussed subsequently in conjunction with FIG. 3C below. Instep 362, thread 350 ends. If, however, in step 352 the target isaccessible, in step 356 the job is executed, where data is transferredto the target and while the 15 target is processing the data, waits andthen posts results information to the repeater performing the session.Recall that repeaters transfer results information to one or morereport-to nodes, as discussed in detail in the commonly owned co-pendingU.S. Patent Application entitled “An Apparatus and Method forDistributing and Collecting Bulk Data Between a Large Number ofMachines,” (Attorney Docket No. AT9-99-274) incorporated herein byreference. It is determined, in step 358, if the distribution iscomplete. If not, thread 350 returns to step 352. Otherwise, oncompletion of the execution of the distribution, again in step 360 thesession is released and the thread ends in step 362.

Refer now to FIG. 3C describing retry thread 370 which may be launchedin response to a distribution failure arising from the unavailability ofthe target in step 354 above. When an error occurs, the session used torun the job is returned to the corresponding pool. In step 371, thread370 releases the session, whereby it is returned to the pool having thepriority level of the session. In step 372 it is determined if a fatalerror has occurred. For example, if the distribution segment, inexecuting the distribution in step 356 above, is too large to fit intoan available disc space, a fatal error will result. If, in step 372, afatal error has occurred in step 374, the job state is set to “FAILED”.In step 376, a results information segment is built which includes thejob state. As described in the commonly owned co-pending U.S. patentapplication entitled “An Apparatus and Method for Distributing andCollecting Bulk Data between a Large Number of Machines” incorporatedherein by reference, results information is generated by repeaters andendpoint system and transmitted to one or more report-to systems. In theevent of an error, the corresponding results information that is sent toone or more preselected report-to systems in accordance with themethodologies described in the aforesaid co-pending U.S. patentapplication may be generated in step 376.

Returning to step 372, if the error was non-fatal step 372 proceeds bythe “No” branch. If, in step 382, the target system was unavailable onthe first attempt to connect to the target system, in step 384 the jobstate is set to “LTNREACHABLE”. Otherwise, the connection has brokenduring the execution of the distribution, and in step 386 the job stateis set to “INTERRUPTED”.

It is then determined in step 388 if a retry cutoff has been reached.Each connection has a predetermined connection retry time interval thatis used to supply a maximum amount of time over which retries for failedjobs will be attempted. Additionally, in step 308 it is determined if anapplication was specified “no retry.” A user, for example, may wish totake corrective action quickly rather than wait for a predeterminednumber of retries to elapse before receiving notification that thedistribution has failed. If the connection retry interval has elapsed,“no retry” is specified, in step 388, the “Yes” branch is followed. Instep 389, the job state is tested, and if “UNREACHABLE,” then the jobfails and the job state is set to “FAILED” in step 374. Otherwise, step389 proceeds to step 390.

In step 390 the job state is set to “UNREACHABLE” and a login callbackmethod is registered with the corresponding gateway of the targetendpoint system. The login callback will be invoked and a loginnotification thereby provided to the repeater performing managementthread 300. Thread 370 proceeds to step 379, discussed below.

If the target system is a repeater rather than an endpoint, there is noretry cutoff because there is no login event from repeaters. Thus, ifthe target system is a repeater, step 388 proceeds by the “No” branch tostep 392 and in step 392 a retry timer thread is launched, bypassingstep 390. Likewise, if the target is an endpoint system and the retrycutoff has not expired, step 388 proceeds by the “No” branch.

Referring now to FIG. 3D, there is illustrated therein retry timerthread 340. In step 342 retry timer is started. In step 344 it isdetermined if the retry timer has expired. If not, thread 340 loopsuntil the timer expires and then, in step 346, on expiration of thetimer the job state is set to “WAITING”. In step 348, timer thread 340ends.

Returning to FIG. 3C, after launching the retry timer thread, in step392, thread 370 proceeds to step 379. In step 379, it is determined ifthe job state is “WAITING” or “FAILED.” The job state may be set to“WAITING” in step 346, FIGLTIE 3D. If so, then thread 370 notifiesthread 300, FIG. 3A, signaling an 15 terminates, step 385. Otherwise, instep 381 thread 370 loops until the endpoint logs in and, in step 383,the job state is set equal to “WAITING,” and again notifies thread 300in step 308.

Returning to FIG. 3A after the job state is set to “WAITING” in step346, FIG. 3D or in step 383, FIG. 3C, depending on the path followed instep 379, FIG. 3C, step 306 of thread 300 then determines that thedistribution that launched error handling thread 370 is ready forscheduling, and then initiates a session to execute the distribution insteps 310-320, as previously described.

Although the present invention and its advantages have been described indetail, it should be understood that various changes, substitutions andalterations can be made herein without departing from the spirit andscope of the invention as defined by the appended claims.

1-11. (canceled)
 12. A data processing system for connection schedulingwithin a network comprising a plurality of nodes, comprising: circuitryoperable for determining if a job is available for scheduling; circuitryoperable for determining, in response to said circuitry operable fordetermining if said job is available, if a session is available, whereinsaid session is included in a pool of sessions, said pool of sessionshaving a preselected one of a set of priority levels corresponding to apriority level of said job and wherein said session effects an executionof said job; circuitry operable for creating a network connection to atarget system for said execution of said job, wherein said target systemis another node of the networked data processing system; circuitryoperable for launching said session to effect said execution of saidjob, if said session is available; and circuitry operable for launchingan error handling thread in response to an error condition, said errorhandling thread releasing said session.
 13. The system of claim 12wherein said session comprises a thread.
 14. (canceled)
 15. The systemof claim 12 further comprising circuitry operable for determining ifsaid network connection is an existing network connection, and whereinsaid circuitry operable for creating said network connection is operatedif said network connection is not an existing network connection, andwherein said session is launched using said existing network connectionif said network connection is an existing network connection such thatsaid existing network connection supports multiple logical sessions. 16.(canceled)
 17. The system of claim 12 further comprising circuitryoperable for changing value of a job state from a first value to asecond value in response to said launching of said error handlingthread.
 18. The system of claim 17 wherein said first value signals thatsaid job is available for scheduling.
 19. The system of claim 12 furthercomprising circuitry operable for retrying said steps of determining ifa job is available for scheduling, determining if a session isavailable, and launching said session, in response to an errorcondition.
 20. The system of claim 19 wherein said circuitry operablefor retrying is operated until a predetermined time interval haselapsed.
 21. The system of claim 20 further comprising circuitryoperable for registering a callback method in response to an expiry ofsaid predetermined time interval.
 22. The system of claim 21 whereinsaid circuitry operable for determining if a job is available forscheduling, determining if a session is available, and launching saidsession are operated in response to an invoking of said callback methodby said target system.
 23. A computer program product embodied in amachine readable storage medium, the program product for job schedulingcomprising instructions for: determining if a job is available forscheduling; determining, in response to instructions for determining ifsaid job is available, if a session is available, wherein said sessionis included in a pool of sessions, said pool of sessions having apreselected one of a set of priority levels corresponding to a prioritylevel of said job and wherein said session effects an execution of saidjob; creating a network connection to a target system for said executionof said job, wherein said target system is another node of the networkeddata processing system; launching said session to effect said executionof said job, if said session is available; and launching an errorhandling thread in response to an error condition, said error handlingthread releasing said session.
 24. The program product of claim 23wherein said session comprises a thread.
 25. (canceled)
 26. The programproduct of claim 23 further comprising instructions for determining ifsaid network connection is an existing network connection, and whereinsaid instructions for creating said network connection are performed ifsaid connection is not an existing network connection, and wherein saidsession is launched using said existing network connection if saidnetwork connection is an existing network connection such that saidexisting network connection supports multiple logical sessions. 27.(canceled)
 28. The program product of claim 23 further comprisinginstructions for changing value of a job state from a first value to asecond value in response to said launching of said error handlingthread.
 29. The program product of claim 28 wherein said first valuesignals that said job is available for scheduling.
 30. The programproduct of claim 23 further comprising programming for retrying saidsteps of determining if a job is available for scheduling, determiningif a session is available, and launching said session, in response to anerror condition.
 31. The program product of claim 30 wherein saidinstructions for retrying are repeated until a predetermined timeinterval has elapsed.
 32. The program product of claim 31 furthercomprising programming for registering a callback method in response toan expiry of said predetermined time interval.
 33. The program productof claim 32 wherein said instructions for determining if a job isavailable for scheduling, determining if a session is available, andlaunching said session are executed in response to an invoking of saidcallback method by said target system.